function getNodeRefs(refs) {
    var strin = "";
    var noderefs = refs;
    var n = noderefs.split("workspace://SpacesStore/");
    for (var i = 1; i < n.length; i++) {
        strin += n[i];
    }
    var m = strin.replace(/,/g, "|");
    return m;
}

function validateMessage(){
    Alfresco.util.PopupManager.displayPrompt(
        {
            title: "Trūksta duomenų",
            text: "Neparinktas vykdytojas",
            buttons: [
                {
                    text: Alfresco.util.message("Grįžti", this.name),
                    handler: function regTitle_back()
                    {
                        this.destroy();
                    },
                    isDefault: true
                }]
        });
}

function registerPerRef(buttonId){
    document.getElementById(buttonId).disabled = true;
    var pTitle=null, nodes=null, initiator=null, noderefs=null, pastabos=null, pGroup=null, urlName=null;
    var propertyId ="page_x002e_data-form_x002e_task-edit_x0023_default_";
    noderefs = document.getElementById(propertyId+'assoc_packageItems').value;
    pastabos = document.getElementById(propertyId+'prop_bpm_comment').value;
    initiator = document.getElementById(propertyId+'prop_rccwf_initiatorName').value;
    pGroup = document.getElementById(propertyId+'prop_rccwf_hiddenRegGavName').value;
    pTitle = document.getElementById(propertyId+'prop_rccwf_hiddenRegTitle').value;
    var group = "pa"; var mode = "single"; urlName = "CreateItem/personaloPazymuList/";

    nodes = getNodeRefs(noderefs);
    if (pastabos === "") {pastabos = " ";}
    if (pTitle === null || pTitle === "") {alert("Nenustatyta pažymos antraštė.");return false;}
    if (pGroup === null || pGroup === "") {alert("Nenustatytas pažymos gavėjas.");return false;}
    if (initiator != null && initiator != "") {
        if (nodes != null) {
            dataListRegistration(buttonId,group,urlName,pGroup,pTitle,pastabos,initiator,nodes,mode);
        } else {
            $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko rasti dokumentų.</span>").css("color", "red");
            document.getElementById(buttonId).disabled = false;
        }
    } else {
        $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti darbų sekos iniciatoriaus.</span>").css("color", "red");
        document.getElementById(buttonId).disabled = false;
    }
}

function registerOrderSecAbroad(buttonId) {
    document.getElementById(buttonId).disabled = true;
    var nodes=null, noderefs=null, pastabos=null, executorNodeRef=null, executor=null, pTitle = null;
    var propertyId ="page_x002e_data-form_x002e_task-edit_x0023_default_";
    var executorId = propertyId+"assoc_rccwf_executor";
    var urlName = "CreateItem/personnel/"; var pGroup = "Komandiruočių klausimais";
    var group = "k";var mode = "single";
    noderefs = document.getElementById(propertyId+'assoc_packageItems').value;
    pastabos = document.getElementById(propertyId+'prop_bpm_comment').value;
    executorNodeRef = document.getElementById(executorId).value;
    pTitle = document.getElementById(propertyId+'prop_rccwf_hiddenRegTitle').value;

    if (executorNodeRef != "" && executorNodeRef != null && executorNodeRef != undefined) {
        executor = getNodeRefs(executorNodeRef);
        if (executor != null) {
            if (pastabos === "") {pastabos = " ";}
            nodes = getNodeRefs(noderefs);
            if (nodes != null) {
                dataListRegistration(buttonId,group,urlName,pGroup,pTitle,pastabos,executor,nodes,mode);
            } else {
                $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nėra dokumentų.</span>").css("color", "red");
                document.getElementById(buttonId).disabled = false;
            }
        }else{
            $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nėra dokumentų.</span>").css("color", "red");
            document.getElementById(buttonId).disabled = false;
        }
    } else {
        document.getElementById(buttonId).disabled = false;
        validateMessage();
    }
}

function registerOrderPer(buttonId) {
    document.getElementById(buttonId).disabled = true;
    var nodes=null, pastabos=null, noderefs=null, pTitle = null, executor = null, executorNodeRef = null;
    var propertyId ="page_x002e_data-form_x002e_task-edit_x0023_default_";
    var executorId = propertyId+"assoc_rccwf_executor";
    var urlName = "CreateItem/personnel/"; var pGroup = "Personalo klausimais";
    var group = "p"; var mode = "single";
    noderefs = document.getElementById(propertyId+'assoc_packageItems').value;
    pastabos = document.getElementById(propertyId+'prop_bpm_comment').value;
    pTitle = document.getElementById(propertyId+'prop_rccwf_hiddenRegTitle').value;
    executorNodeRef = document.getElementById(executorId).value;

    if (executorNodeRef != "" && executorNodeRef != null && executorNodeRef != undefined) {
        executor = getNodeRefs(executorNodeRef);
        if (executor != null) {
            if (pastabos === "") {pastabos = " ";}
            nodes = getNodeRefs(noderefs);
            if (nodes != null) {
                dataListRegistration(buttonId,group,urlName,pGroup,pTitle,pastabos,executor,nodes,mode);
            } else {
                $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nėra dokumentų.</span>").css("color", "red");
                document.getElementById(buttonId).disabled = false;
            }
        }else{
            $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nėra dokumentų.</span>").css("color", "red");
            document.getElementById(buttonId).disabled = false;
        }
    } else {
        document.getElementById(buttonId).disabled = false;
        validateMessage();
    }
}

function registerAlNotice(buttonId) {
    document.getElementById(buttonId).disabled = true;
    var noderefs=null, pastabos=null, nodes=null, initiator = null;
    var propertyId ="page_x002e_data-form_x002e_task-edit_x0023_default_";
    noderefs = document.getElementById(propertyId+'assoc_packageItems').value;
    pastabos = document.getElementById(propertyId+'prop_bpm_comment').value;
    initiator = document.getElementById(propertyId+'prop_rccwf_initiatorName').value;
    var urlName = "CreateItem/personaloPranList/"; var pGroup = "Materialinės pašalpos klausimais"; var pTitle = "Dėl materialinės pašalpos skyrimo";
    var group = "mp"; var mode = "single";

    if (pastabos === "") {pastabos = " ";}
    nodes = getNodeRefs(noderefs);

    if (nodes != null && nodes != "") {
        if (initiator != null && initiator != "") {
            dataListRegistration(buttonId,group,urlName,pGroup,pTitle,pastabos,initiator,nodes,mode);
        }else{
            $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti darbų sekos iniciatoriaus.</span>").css("color", "red");
            document.getElementById(buttonId).disabled = false;
        }
    } else {
        $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nėra dokumentų.</span>").css("color", "red");
        document.getElementById(buttonId).disabled = false;
    }
}

function registerVacAppeal(buttonId) {
    document.getElementById(buttonId).disabled = true;
    var pTitle=null, nodes=null, initiator=null, noderefs=null, pastabos=null, pGroup=null, urlName=null;
    var propertyId ="page_x002e_data-form_x002e_task-edit_x0023_default_";
    noderefs = document.getElementById(propertyId+'assoc_packageItems').value;
    pastabos = document.getElementById(propertyId+'prop_bpm_comment').value;
    initiator = document.getElementById(propertyId+'prop_rccwf_initiatorName').value;
    urlName = "CreateItem/personaloPrasymuList/"; pGroup = "Atostogų klausimais"; pTitle = "Dėl kasmetinių atostogų suteikimo";
    var group = "a"; var mode = "single";

    nodes = getNodeRefs(noderefs);
    if (pastabos === "") {pastabos = " ";}
    if (pTitle === null || pTitle === "") {alert("Pasirinkite pranešimo antraštę.");return false;}

    if (initiator != null && initiator != "") {
        if (nodes != null) {
            dataListRegistration(buttonId,group,urlName,pGroup,pTitle,pastabos,initiator,nodes,mode);
        } else {
            $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko rasti dokumentų.</span>").css("color", "red");
            document.getElementById(buttonId).disabled = false;
        }
    } else {
        $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti darbų sekos iniciatoriaus.</span>").css("color", "red");
        document.getElementById(buttonId).disabled = false;
    }
}

function registerPerAppeal(buttonId) {
    document.getElementById(buttonId).disabled = true;
    var pTitle=null, nodes=null, initiator=null, noderefs=null, pastabos=null, pGroup=null, group=null;
    var propertyId ="page_x002e_data-form_x002e_task-edit_x0023_default_";
    noderefs = document.getElementById(propertyId+'assoc_packageItems').value;
    pastabos = document.getElementById(propertyId+'prop_bpm_comment').value;
    initiator = document.getElementById(propertyId+'prop_rccwf_initiatorName').value;
    pTitle = document.getElementById(propertyId+'prop_rccwf_hiddenRegTitle').value;
    var urlName = "CreateItem/personaloPrasymuList/"; var mode = "single";
    if(pTitle != null && pTitle != ""){
        pGroup = getAppealGroup(pTitle);
        if(pGroup != null) {
            group = getGroupSymbols(pGroup);
            if (group != null) {
                if (pastabos === "") {pastabos = " ";}
                if (initiator != null && initiator != "") {
                    nodes = getNodeRefs(noderefs);
                    if (nodes != null) {
                        dataListRegistration(buttonId,group,urlName,pGroup,pTitle,pastabos,initiator,nodes,mode);
                    } else {
                        $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko rasti dokumentų.</span>").css("color", "red");
                        document.getElementById(buttonId).disabled = false;
                    }
                } else {
                    $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti darbų sekos iniciatoriaus.</span>").css("color", "red");
                    document.getElementById(buttonId).disabled = false;
                }
            } else {
                $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti registracijos grupės.</span>").css("color", "red");
                document.getElementById(buttonId).disabled = false;
            }
        } else{
            $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti registracijos grupės.</span>").css("color", "red");
            document.getElementById(buttonId).disabled = false;
        }
    } else {
        $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti registracijos grupės antraštės.</span>").css("color", "red");
        document.getElementById(buttonId).disabled = false;
    }
}

function registerAlAppeal(buttonId) {
    document.getElementById(buttonId).disabled = true;
    var pTitle=null, nodes=null, initiator=null, noderefs=null, pastabos=null;
    var propertyId ="page_x002e_data-form_x002e_task-edit_x0023_default_";
    noderefs = document.getElementById(propertyId+'assoc_packageItems').value;
    pastabos = document.getElementById(propertyId+'prop_bpm_comment').value;
    initiator = document.getElementById(propertyId+'prop_rccwf_initiatorName').value;
    pTitle = document.getElementById(propertyId+'prop_rccwf_hiddenRegTitle').value;
    var pGroup = "Materialinės pašalpos klausimais"; var urlName = "CreateItem/personaloPrasymuList/";
    var group = "mp"; var mode = "single";

    if (pastabos === "") {pastabos = " ";}
    if (pTitle === null || pTitle === "") {alert("Nenurodyta prašymo antraštė.");return false;}

    if (initiator != null && initiator != "") {
        nodes = getNodeRefs(noderefs);
        if (nodes != null) {
            dataListRegistration(buttonId,group,urlName,pGroup,pTitle,pastabos,initiator,nodes,mode);
        } else {
            $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko rasti dokumentų.</span>").css("color", "red");
            document.getElementById(buttonId).disabled = false;
        }
    } else {
        $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti darbų sekos iniciatoriaus.</span>").css("color", "red");
        document.getElementById(buttonId).disabled = false;
    }
}

function registerSecAbroadNotice(buttonId) {
    document.getElementById(buttonId).disabled = true;
    var noderefs=null, pastabos=null, nodes=null, initiator = null;
    var propertyId ="page_x002e_data-form_x002e_task-edit_x0023_default_";
    noderefs = document.getElementById(propertyId+'assoc_packageItems').value;
    pastabos = document.getElementById(propertyId+'prop_bpm_comment').value;
    initiator = document.getElementById(propertyId+'prop_rccwf_initiatorName').value;
    var urlName = "CreateItem/personaloPranList/"; var pGroup = "Kitais personalo klausimais"; var pTitle = "Dėl komandiruotės į užsienį";
    var group = "pk"; var mode = "single";

    if (pastabos === "") {pastabos = " ";}
    nodes = getNodeRefs(noderefs);

    if (nodes != null && nodes != "") {
        if (initiator != null && initiator != "") {
            dataListRegistration(buttonId,group,urlName,pGroup,pTitle,pastabos,initiator,nodes,mode);
        }else{
            $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti darbų sekos iniciatoriaus.</span>").css("color", "red");
            document.getElementById(buttonId).disabled = false;
        }
    } else {
        $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nėra dokumentų.</span>").css("color", "red");
        document.getElementById(buttonId).disabled = false;
    }
}

function registerPerNotice(buttonId) {
    document.getElementById(buttonId).disabled = true;
    var noderefs=null, pastabos=null, nodes=null, initiator = null, pGroup=null, pTitle=null, group=null;
    var propertyId ="page_x002e_data-form_x002e_task-edit_x0023_default_";
    noderefs = document.getElementById(propertyId+'assoc_packageItems').value;
    pastabos = document.getElementById(propertyId+'prop_bpm_comment').value;
    initiator = document.getElementById(propertyId+'prop_rccwf_initiatorName').value;
    pTitle = document.getElementById(propertyId+'prop_rccwf_hiddenRegTitle').value;
    var urlName = "CreateItem/personaloPranList/"; var mode = "single";
    if(pTitle != null && pTitle != ""){
        //console.log("pTitle: " + pTitle);
        pGroup = getNoticeGroup(pTitle);
        //console.log("pGroup: " + pGroup);
        if(pGroup != null) {
            group = getGroupSymbols(pGroup);
            //console.log("group: " + group);
            if (group != null) {
                if (pastabos === "") {pastabos = " ";}
                if (initiator != null && initiator != "") {
                    nodes = getNodeRefs(noderefs);
                    if (nodes != null) {
                        dataListRegistration(buttonId,group,urlName,pGroup,pTitle,pastabos,initiator,nodes,mode);
                    } else {
                        $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko rasti dokumentų.</span>").css("color", "red");
                        document.getElementById(buttonId).disabled = false;
                    }
                } else {
                    $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti darbų sekos iniciatoriaus.</span>").css("color", "red");
                    document.getElementById(buttonId).disabled = false;
                }
            } else {
                $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti registracijos grupės.</span>").css("color", "red");
                document.getElementById(buttonId).disabled = false;
            }
        } else{
            $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti registracijos grupės.</span>").css("color", "red");
            document.getElementById(buttonId).disabled = false;
        }
    } else {
        $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Nepavyko nustatyti registracijos grupės antraštės.</span>").css("color", "red");
        document.getElementById(buttonId).disabled = false;
    }
}

function dataListRegistration(btnId,nGr, ur, pGr, pTi, pas, init, nod, mod) {
    var URI = null;
    var time = new Date().getTime();

    var registerData = function(res) {
        var result = eval('(' + res.serverResponse.responseText + ')');
        if (result.regNumber != "" && result.regNumber != undefined && result.regNumber != null){
            var URI = ur + encodeURIComponent(result.regNumber)+ '/' + encodeURIComponent(pGr) + '/' + encodeURIComponent(pTi) + '/' + encodeURIComponent(pas) + '/' + encodeURIComponent(init) + '/' + encodeURIComponent(nod) + '/' + encodeURIComponent(mod);
            //var URI = ur + result.regNumber + '/' + encodeURIComponent(pGr) + '/' + encodeURIComponent(pTi) + "/" + encodeURIComponent(pas) + '/' + encodeURIComponent(init) + '/' + nod + '/' + encodeURIComponent(mod);
            $.ajax({
                type: "GET",
                url: Alfresco.constants.PROXY_URI + URI,
                success: function(response) {
                    if (response == 'success') {
                        $('#responseStatus').html("<span class='green'>Duomenų įrašas sėkmingai sukurtas</span>").css("color", "green");
                    } else {
                        $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo.</span>").css("color", "red");
                        document.getElementById(btnId).disabled = false;
                    }
                    $("#loader").hide();
                },
                error: function(error) {
                    //console.log(error);
                    $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Klaida jungiantis prie serverio.</span>").css("color", "red");
                    document.getElementById(btnId).disabled = false;
                    $("#loader").hide();
                }
            });
        }
    };
    $("#loader").show();
    Alfresco.util.Ajax.jsonGet({
        url : Alfresco.constants.PROXY_URI + 'demo/RegNumber?group=' + nGr + '&time=' + time,
        successCallback : {
            fn : registerData,
            scope : this
        },
        failureCallback : {
            fn : function() {
                $('#responseStatus').html("<span class='red'>Nepavyko sukurti duomenų įrašo. Klaida generuojant registracijos numerį.</span>").css("color", "red");
                document.getElementById(btnId).disabled = false;
                $("#loader").hide();
            },
            scope : this
        }
    });
}

function getNoticeGroup(ptitle){
    var noticeList=new Array();
    noticeList[0] = '';

    // Materialines pasalpos klausimais
    noticeList[1] = 'Dėl materialinės pašalpos skyrimo';

    // Kitais personalo klausimais
    noticeList[2] = 'Dėl darbo poilsio dieną nustatymo';
    noticeList[3] = 'Dėl duomenų pateikimo';
    noticeList[4] = 'Dėl įmonės struktūros pakeitimo';
    noticeList[5] = 'Dėl komandiruotės į užsienį';
    noticeList[6] = 'Dėl naujo skyriaus įsteigimo';
    noticeList[7] = 'Dėl naujos pareigybės įsteigimo';
    noticeList[8] = 'Dėl papildomo darbo nustatymo';
    noticeList[9] = 'Dėl pareiginio atlyginimo nustatymo';
    noticeList[10] = 'Dėl pareiginio priedo nustatymo';
    noticeList[11] = 'Dėl pareigų pakeitimo';
    noticeList[12] = 'Dėl pavadavimo';
    noticeList[13] = 'Dėl premijavimo';
    noticeList[14] = 'Dėl viršvalandinio darbo nustatymo';
    noticeList[15] = 'Dėl darbo drausmės pažeidimo';

    // Atostogu klausimais
    noticeList[16] = 'Dėl kasmetinių atostogų atšaukimo';
    noticeList[17] = 'Dėl poilsio dienų suteikimo';

    for (var i = 0; i < noticeList.length; i++) {
        var group = null;
        if(noticeList[i] === ptitle) {
            if (i > 0 && i < 2) {group = "Materialinės pašalpos klausimais";}
            else if (i > 1 && i <16) {group = "Kitais personalo klausimais";}
            else if (i > 15 && i < 18) {group = "Atostogų klausimais";}
            else {return false;}
            break;
        }
    }
    return group;
}

function getAppealGroup(ptitle){
    var appealList=new Array();
    appealList[0] = '';

    // Materialines pasalpos klausimais
    appealList[1] = 'Dėl materialinės pašalpos skyrimo';
    appealList[2] = 'Dėl vienkartinės pašalpos gimus vaikui';
	
    // Kitais personalo klausimais
    appealList[3] = 'Dėl poilsio dienų suteikimo';
    appealList[4] = 'Dėl papildomų poilsio dienų suteikimo';
    appealList[5] = 'Dėl neatvykimo į darbą administracijos leidimu';
    appealList[6] = 'Dėl darbo laiko nustatymo';
    appealList[7] = 'Dėl pavardės pakeitimo įmonės dokumentuose';
    appealList[8] = 'Dėl atleidimo iš darbo';
	
    // Atostogu klausimais
    appealList[9] = 'Dėl kasmetinių atostogų suteikimo';
    appealList[10] = 'Dėl kasmetinių minimalių 35 dienų atostogų suteikimo';
    appealList[11] = 'Dėl kasmetinių atostogų perkėlimo';
    appealList[12] = 'Dėl nemokamų atostogų suteikimo';
    appealList[13] = 'Dėl nemokamų mokymosi atostogų suteikimo';
    appealList[14] = 'Dėl tėvystės atostogų suteikimo';
    appealList[15] = 'Dėl nėštumo ir gimdymo atostogų suteikimo';
    appealList[16] = 'Dėl nėštumo ir gimdymo atostogų pratęsimo';
    appealList[17] = 'Dėl vaikui prižiūrėti atostogų suteikimo';

    for (var i = 0; i < appealList.length; i++) {
        var group = null;
        if(appealList[i] === ptitle) {
            if (i > 0 && i < 3) {group = "Materialinės pašalpos klausimais";}
            else if (i > 2 && i <9) {group = "Kitais personalo klausimais";}
            else if (i >8 && i < 18) {group = "Atostogų klausimais";}
            else {return false;}
            break;
        }
    }
    return group;
}

function getGroupSymbols(regGroup){
    var group = null;
    if (regGroup === "Atostogų klausimais") {group = "a";}
    else if (regGroup === "Materialinės pašalpos klausimais") {group = "mp";}
    else if (regGroup === "Kitais personalo klausimais") {group = "pk";}
    else {return false;}
    return group;
}